package com.bdqn.easybuy1.dao;

import com.bdqn.easybuy1.entities.User;

import java.sql.Connection;
import java.util.List;

public interface UserDao {
    /**
     * 新增用户信息
     *
     * @param conn 数据库连接对象
     * @param user 封装用户信息的对象
     * @return 返回受影响的行数
     * @throws Exception
     */
    int insert(Connection conn, User user) throws Exception;

    /**
     * 更新用户信息
     *
     * @param conn 数据库连接对象
     * @param user 封装用户信息的对象
     * @return 返回受影响的行数
     * @throws Exception
     */
    int update(Connection conn, User user) throws Exception;

    /**
     * 根据id删除用户信息
     *
     * @param conn 数据库连接对象
     * @param id   用户id
     * @return 返回受影响的行数
     * @throws Exception
     */
    int deleteUserById(Connection conn, String id) throws Exception;

    /**
     * 分页查询用户信息
     *
     * @param conn          数据库连接对象
     * @param currentPageNo 当前页码
     * @param pageSize      每页显示的数据量
     * @return 返回用户列表
     * @throws Exception
     */
    List<User> getUserList(Connection conn, Integer currentPageNo, Integer pageSize) throws Exception;

    /**
     * 查询用户分页的总条数
     *
     * @param conn 数据库连接对象
     * @return 返回分页的总条数
     * @throws Exception
     */
    Integer count(Connection conn) throws Exception;

    /**
     * 根据id查询用户信息
     *
     * @param conn 数据库连接对象
     * @param id 用户id
     * @param loginName 用户登录名
     * @return 返回用户对象
     * @throws Exception
     */
    User getUserById(Connection conn, Integer id, String loginName) throws Exception;
}
